package com.wolfking.jeesite.mybatis;

import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
import org.apache.commons.lang3.StringUtils;

import java.util.List;

/**
 * 基本的sql生成类
 *
 * @author wolfking@赵伟伟
 * @mail zww199009@163.com
 * @创作日期 2017年4月23日 上午9:56:42
 * @copyright wolfking
 */

public class BaseSqlProvider {
    /**
     * 获取所有的带有@TableId和@TableField的列的，inser，select字符串
     *
     * @param tableInfo
     * @return
     */
    public static String getAllFieldString(Class<?> clazz) {
        TableInfo tableInfo = TableInfoHelper.getTableInfo(clazz);
        StringBuilder sb = new StringBuilder(500);
        List<TableFieldInfo> fieldList = tableInfo.getFieldList();
        for (TableFieldInfo tableFieldInfo : fieldList) {
            sb.append("`").append(tableFieldInfo.getColumn())
                    .append("`").append(" as ")
                    .append("`")
                    .append(tableFieldInfo.getProperty())
                    .append("`,");
        }
        if (StringUtils.isNotBlank(tableInfo.getKeyColumn())) {
            sb.append("`").append(tableInfo.getKeyColumn()).append("`")
                    .append(" as ").append("`").append(tableInfo.getKeyProperty()).append("`");

        } else {
            sb.setCharAt(sb.length() - 1, (char) 32);
        }
        return sb.toString();
    }
}
